package org.dromara.common.core.utils;

import cn.hutool.core.util.PageUtil;

import java.util.List;

public class PageUtils<T> {

    public final static int PAGE_ONE_SIZE = 2000;
    public final static int PAGE_SIZE = 5000;
    public final static int TWO_PAGE_SIZE = 100000;

    /**
     *
     * @param ids           数据列表
     * @param pageIndex     开始页数 从0开始
     */
    // public static<T> R<T> ok() {
    //     return restResult(null, SUCCESS, "操作成功");
    // }
    public static<T> List<T> getPageData(List<T> ids, Integer pageIndex) {
        return getPageData(ids, pageIndex, PAGE_SIZE);
    }

    public static<T> List<T> getPageData(List<T> ids, Integer pageIndex, Integer pageSize) {

        // 获取第pageIndex页的数据（第一页的索引是0）
        pageIndex = null == pageIndex ? 0 : pageIndex;

        // 计算起始索引和结束索引
        int start = PageUtil.getStart(pageIndex, pageSize);
        int end = PageUtil.getEnd(pageIndex, pageSize);
        end = Math.min(ids.size(), end);

        if (start > end) {
            return null;
        }

        // 获取指定页的数据
        return ids.subList(start, end);
    }
}
